package com.oristand.service.impl;

import com.oristand.mapper.PropertyMapper;
import com.oristand.pojo.Property;
import com.oristand.service.PropertyService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

/**
 * 产品属性信息接口的实现类
 *
 * @author zhaijianfeng
 * @version 1.0
 * @date 2021/11/30
 */
@Service
public class PropertyServiceImpl implements PropertyService {

    /**
     * propertyMapper 产品属性信息的mapper数据操作层
     */
    private PropertyMapper propertyMapper;

    @Autowired
    public void setPropertyMapper(PropertyMapper propertyMapper) {
        this.propertyMapper = propertyMapper;
    }

    /**
     * 根据属性id查询商品的基本属性信息
     *
     * @param propertyId 属性信息id
     * @return Property 返回属性信息
     */
    @Override
    public Property findPropertyById(int propertyId) {
        Property property = propertyMapper.selectById(propertyId);
        //只有status为1的时候,才可以查询这个产品的属性信息
        if (property.getStatus() == 1) {
            return property;
        } else {
            return null;
        }
    }

    /**
     * 根据属性信息id删除属性信息
     *
     * @param id 属性信息id
     * @return int 返回删除受影响的行数,如果行数为0,说明删除失败,行数大于0,说明删除成功
     */
    @Override
    public int deletePropertyById(Integer id) {
        return propertyMapper.deleteById(id);
    }

    /**
     * 新增属性信息
     *
     * @param property 属性信息
     * @return int 返回新增受影响的行数,如果行数为0,说明属性新增失败,行数大于0,说明新增成功
     */
    @Override
    public int saveProperty(Property property) {
        return propertyMapper.insert(property);
    }

    /**
     * 更新产品的属性信息
     *
     * @param property 属性信息
     * @return int 返回更新受影响的行数,如果行数为0,说明属性信息更新失败,行数大于0,说明更新成功
     */
    @Override
    public int updatePropertyById(Property property) {
        return propertyMapper.updateById(property);
    }
}
